GtkDragSource: Don't use gtk_image_definition_new_pixbuf
authorAlexander Larsson <alexl@redhat.com>
Mon, 23 Oct 2017 13:15:35 +0000 (15:15 +0200)
committerAlexander Larsson <alexl@redhat.com>
Mon, 23 Oct 2017 13:28:33 +0000 (15:28 +0200)
We want to get rid of pixbuf image definitions.

Long term this should probably be gtk_drag_source_set_icon_surface instead.

gtk/gtkdragsource.c

index 4c701b459948cdabb4d3daf70171862bede72ab1..6ed5e942d9f1cf4b98db45e7398162eb18a52cc9 100644 (file)
@@ -362,6 +362,7 @@ gtk_drag_source_set_icon_pixbuf (GtkWidget *widget,
                                  GdkPixbuf *pixbuf)
 {
   GtkDragSourceSite *site;
+  cairo_surface_t *surface = NULL;
 
   g_return_if_fail (GTK_IS_WIDGET (widget));
   g_return_if_fail (GDK_IS_PIXBUF (pixbuf));
@@ -370,7 +371,9 @@ gtk_drag_source_set_icon_pixbuf (GtkWidget *widget,
   g_return_if_fail (site != NULL); 
 
   g_clear_pointer (&site->image_def, gtk_image_definition_unref);
-  site->image_def = gtk_image_definition_new_pixbuf (pixbuf, 1);
+  surface = gdk_cairo_surface_create_from_pixbuf (pixbuf, 1, gtk_widget_get_window (widget));
+  site->image_def = gtk_image_definition_new_surface (surface);
+  cairo_surface_destroy (surface);
 }
 
 /**